package com.inventory.service;

import com.inventory.model.Product;

import java.util.List;
import java.util.Optional;

public interface ProductService {
    
    Product saveProduct(Product product);
    
    Product updateProduct(Product product);
    
    void deleteProduct(Long id);
    
    Optional<Product> findById(Long id);
    
    List<Product> findAllProducts();
    
    List<Product> findActiveProducts();
    
    List<Product> findByNameContaining(String name);
    
    List<Product> findByCategory(String category);
    
    List<Product> findLowStockProducts();
    
    List<String> getAllCategories();
    
    boolean existsByBarcode(String barcode);
    
    void updateStock(Long productId, int quantity);
} 